package com.baofu.paycore.biz.engine.command.impl;

import com.baofu.paycore.biz.enums.CommandProcessorEnum;
import com.baofu.paycore.biz.enums.CommandTypeEnum;
import com.baofu.paycore.service.facade.enums.PayToolTypeEnum;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.Date;

/**
 * 余额退款命令
 * <p>
 * </p>
 * User: kwl Date: 2016/6/21 ProjectName: paycore Version: 5.0.0
 */
@Setter
@Getter
@ToString(callSuper = true)
public class RefundBalCommand extends BalanceCommand {

    /**
     * 原凭证号
     */
    private String origReceiptNo;

    /**
     * 原请求日期
     */
    private Date origAccDate;

    /**
     * 获取支付命令类型
     * @return  返回该命令的类型枚举
     */
    @Override
    public CommandTypeEnum getCommandType() {
        return CommandTypeEnum.BALANCE_REFUND;
    }

    /**
     * 获取命令所针对的支付工具。
     * @return  返回命令所针对的支付工具。
     */
    @Override
    public PayToolTypeEnum getPayToolType() {
        return PayToolTypeEnum.ACCOUNT;
    }

    /**
     * 获取该命令对应的处理器。
     * @return  返回该命令的对应的处理器的枚举。
     */
    @Override
    public CommandProcessorEnum getProcessorType() {
        return CommandProcessorEnum.BALANCE_REFUND_PROCESSOR;
    }

    /**
     * 获取优先级
     * @return 级别
     */
    @Override
    public int getOrder() {
        return 3;
    }

}
